package com.cplatform.cat.java8.stream;

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

import static java.util.stream.Collectors.*;

public class DishEnterClass {
    public static void main(String[] args) {
        List<Dish> dishes = Dish.menu;
        //打印前两个荤菜
        Predicate<Dish> meta = Dish::isVegetarian;
        dishes.stream().filter(meta.negate()).limit(2).forEach(System.out::println);
        //给定一个数字列表，如何返回一个由每个数的平方构成的列表呢？例如，给定[1, 2, 3, 4,5]，应该返回[1, 4, 9, 16, 25]。
        List<Double> nums = Arrays.asList(1d,2d,3d,4d,5d);
        nums.stream().map(x->Math.pow(x,2d)).forEach(System.out::println);
        //给定两个数字列表，如何返回所有的数对呢？例如，给定列表[1, 2, 3]和列表[3, 4]，应
        //该返回[(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]。为简单起见，你可以用有两个元素的数组来代表数对。
        List<Integer> numbers1 = Arrays.asList(1, 2, 3);
        List<Integer> numbers2 = Arrays.asList(3, 4);

    }
}
